package com.cqw.commontest.mongodb.pojo;

import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 使用 @Document("user") 指定这个类对应 user 集合
 * 使用 @CompoundIndex(def = "{'id':1,'age':-1}") 表示联合索引
 *
 * @Author: caoqingwen
 * @CreateTime: 2021-08-04 23:30
 * @Description:
 */
@Document("user")
@CompoundIndex(def = "{'id':1,'age':-1}")
@Data
@NoArgsConstructor
public class User implements Serializable {


    private static final long serialVersionUID = -4108000726968809414L;

    /**
     * 主键，该属性会自动对应_id字段
     * 如果该属性名为id，注解可以省略
     */
    @Id
    private String id;

    /**
     * 指定该属性对应集合中的name列
     * 如果属性名就是name，注解可以不写
     */
    @Field("name")
    private String name;

    private Integer age;

    /**
     * 使用 @Indexed 指定单列索引
     */
    @Indexed
    private Integer sex;

    private String address;

    private Date createTime;

    private Integer state;

    private Integer followNum;

    @Field("userName_list")
    private List<UserName> userNameList;


}
